package org.gushi.datastruct.a04;

import org.gushi.datastruct.a04.list.ArrayList;
import org.gushi.datastruct.a04.list.List;

public class Stack<E> {

    private List<E> list = new ArrayList<E>();

    public boolean isEmpty() {
        return list.isEmpty();
    }

    public int size() {
        return list.size();
    }

    public void clear() {
        list.clear();
    }

    public void push(E element) {
        list.add(element);
    }

    /**
     * peek 返回栈顶的值。并把栈顶的值删除。
     *
     * @return
     */
    public E pop() {
        if(list.size()<=0){
            return null;
        }
        return list.remove(list.size()-1);
    }

    /**
     * peek 不改变栈的值(不删除栈顶的值)，返回栈顶的值。。
     *
     * @return
     */
    public E peek() {
        if(list.size()<=0){
            return null;
        }
        return list.get(list.size()-1);
    }


}
